﻿//
//
/////////////////////////////////////////////////////////////////////////////
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;

/////////////////////////////////////////////////////////////////////////////
namespace PhysicalEquation.Models
{
    /////////////////////////////////////////////////////////////////////////
    public class EquationModel
    {
        /////////////////////////////////////////////////////////////////////
        [DataType(DataType.Text)]
        [Display(Name = "SubjectId")]
        public int SubjectId { get; set; }

        /////////////////////////////////////////////////////////////////////
        [DataType(DataType.Text)]
        [Display(Name = "SubjectName")]
        public string SubjectName { get; set; }

        /////////////////////////////////////////////////////////////////////
        public List<EquationItemModel> Items { get; set; }
    }
    /////////////////////////////////////////////////////////////////////////
    public class EquationItemModel
    {
        /////////////////////////////////////////////////////////////////////
        [DataType(DataType.Text)]
        [Display(Name = "Id")]
        public int Id { get; set; }

        /////////////////////////////////////////////////////////////////////
        [DataType(DataType.Text)]
        [Display(Name = "Number")]
        [Required(ErrorMessage = "Please specify this field")]
        public string Number { get; set; }

        /////////////////////////////////////////////////////////////////////
        [DataType(DataType.Text)]
        [Display(Name = "Name")]
        [Required(ErrorMessage = "Please specify this field")]
        public string Name { get; set; }

        /////////////////////////////////////////////////////////////////////
        [Display(Name = "Comments")]
        [Required(ErrorMessage = "Please specify this field")]
        [DataType(DataType.MultilineText)]
        public string Comments { get; set; }

        /////////////////////////////////////////////////////////////////////
        [DataType(DataType.Text)]
        [Display(Name = "IsSolved")]
        public bool IsSolved { get; set; }

        /////////////////////////////////////////////////////////////////////
        [DataType(DataType.Text)]
        [Display(Name = "Author")]
        public string Author { get; set; }

        /////////////////////////////////////////////////////////////////////
        [DataType(DataType.Text)]
        [Display(Name = "SubjectId")]
        public int SubjectId { get; set; }

        /////////////////////////////////////////////////////////////////////
        [DataType(DataType.Text)]
        [Display(Name = "SubjectName")]
        public string SubjectName { get; set; }

        /////////////////////////////////////////////////////////////////////
        [DataType(DataType.Date)]
        [Display(Name = "Date")]
        public DateTime Date { get; set; }
    }

    /////////////////////////////////////////////////////////////////////////
    public class EquationItemDetailModel
    {
        /////////////////////////////////////////////////////////////////////
        [DataType(DataType.Text)]
        [Display(Name = "Answer")]
        [Required(AllowEmptyStrings = false, ErrorMessage = "This field is required")]
        public string Answer { get; set; }
        
        /////////////////////////////////////////////////////////////////////
        [DataType(DataType.Text)]
        [Display(Name = "UserName")]
        public string UserName { get; set; }

        public int Points { get; set; }
        
        /////////////////////////////////////////////////////////////////////
        [DataType(DataType.Text)]
        [Display(Name = "EquationId")]
        public int EquationId { get; set; }

        /////////////////////////////////////////////////////////////////////
        [DataType(DataType.Date)]
        [Display(Name = "Date")]
        public DateTime Date { get; set; }
    }

    /////////////////////////////////////////////////////////////////////////
    public class EquationDetailModel
    {
        /////////////////////////////////////////////////////////////////////
        public EquationItemModel EquationItem { get; set; }

        /////////////////////////////////////////////////////////////////////
        public IEnumerable<EquationItemDetailModel> Answers { get; set; }
    }
/////////////////////////////////////////////////////////////////////////////
}//                                                                          